// ==UserScript==
// @name 宝可梦点击(Poke Clicker)辅助脚本 自动矿场模块
// @namespace PokeClickerHelper
// @version 0.1.1
// @description 自动矿场功能:可自动挖掘、售卖、买药、用药!
// @author 苍猫
// @match https://www.pokeclicker.com
// @match https://g8hh.github.io/pokeclicker/
// @match https://pokeclicker.g8hh.com
// @match https://yx.g8hh.com/pokeclicker/
// @icon data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/319hf99fYX/fX2F/319hf8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////99fYX/fX2F/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////wAAAP8AAAD/fX2F/319hf99fYX/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAD/AAAA/wAAAP99fYX/fX2F/wAAAP8AAAD/AAAA/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/HBT//xwU//8AAAD//////319hf8AAAD/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU//8cFP//HBT//wAAAP8AAAD/Dgim/w4Ipv8OCKb/Dgim/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT//xwU/44cFP//HBT//xwU//8cFP//Dgim/w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU/47/////HBT/jhwU//8cFP//HBT//w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT/jhwU//8OCKb/Dgim/w4Ipv8OCKb/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/xwU//8OCKb/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAPw/AADwDwAA4AcAAOAHAADAAwAAwAMAAMADAADAAwAA4AcAAOAHAADwDwAA/D8AAP//AAD//wAA//8AAA==
// @grant none
// @license MIT
// @run-at document-end
// ==/UserScript==
/* eslint dot-notation:0 */
/* global App, $, PokeClickerHelper, Underground, GameConstants, player, ItemList, Mine */
if (typeof PokeClickerHelper == typeof void 0) {
alert('宝可梦点击(Poke Clicker)辅助脚本 自动矿场模块加载失败\n\n未找到核心模块,需要先安装核心模块才可正常使用\n\n论坛主页:https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842')
window.open("https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842")
return
}
// UI相关
PokeClickerHelper.UIDOM.push(`
`)
let fuc = () => {
const text = ``
// 未解锁挖矿的情况下会导致异常 加IF判断
if ($('#treasures th').length > 0) $('#treasures th')[3].style.width = "35%"
$('#treasures th:eq(3)').append(text)
const text_2 = `
`
$("#dig .row.no-gutters").eq(2).prepend(text_2)
// 初始化加载功能状态
AutoUnderground.CheckAutoUnderground()
// 初始化赋值
if (PokeClickerHelper.get('ToggleAutoDig', '') === '') PokeClickerHelper.set('ToggleAutoDig', 'false')
}
const listener = () => {
$('#PokeClickerHelperToggleAutoDig').on('click', function () {
if (AutoUnderground.LoadOver) {
if (PokeClickerHelper.get('ToggleAutoDig', 'false') == 'false') {
PokeClickerHelper.set('ToggleAutoDig', this.value = 'true');
$('#PokeClickerHelperToggleAutoDig').text('自动挖掘 [ON]');
PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoDig);
} else {
PokeClickerHelper.set('ToggleAutoDig', this.value = 'false');
$('#PokeClickerHelperToggleAutoDig').text('自动挖掘 [OFF]');
PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoDig);
}
} else {
AutoUnderground.LoadOver = true;
if (JSON.parse(PokeClickerHelper.get('ToggleAutoDig', 'false'))) {
$('#PokeClickerHelperToggleAutoDig').text('自动挖掘 [ON]');
PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoDig);
}
}
})
$('#PokeClickerHelperAutoSellPlate').on('click', function () {
JSON.parse(this.value) ? this.value = 'false' : this.value = 'true';
JSON.parse(this.value) ? $('#PokeClickerHelperAutoSellPlate').text($('#PokeClickerHelperAutoSellPlate').text().replace('OFF', 'ON')) : $('#PokeClickerHelperAutoSellPlate').text($('#PokeClickerHelperAutoSellPlate').text().replace('ON', 'OFF'));
JSON.parse(this.value) ? this.classList.replace('btn-danger', 'btn-success') : this.classList.replace('btn-success', 'btn-danger');
JSON.parse(this.value) ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellPlate) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoSellPlate)
PokeClickerHelper.set('AutoSellPlate', this.value)
})
$('#PokeClickerHelperAutoSellDiamond').on('click', function () {
JSON.parse(this.value) ? this.value = 'false' : this.value = 'true';
JSON.parse(this.value) ? $('#PokeClickerHelperAutoSellDiamond').text($('#PokeClickerHelperAutoSellDiamond').text().replace('OFF', 'ON')) : $('#PokeClickerHelperAutoSellDiamond').text($('#PokeClickerHelperAutoSellDiamond').text().replace('ON', 'OFF'));
JSON.parse(this.value) ? this.classList.replace('btn-danger', 'btn-success') : this.classList.replace('btn-success', 'btn-danger');
JSON.parse(this.value) ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellDiamond) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoSellDiamond)
PokeClickerHelper.set('AutoSellDiamond', this.value)
})
$('#PokeClickerHelperAutoSmallRestore').on('click', function () {
JSON.parse(this.value) ? this.value = 'false' : this.value = 'true';
JSON.parse(this.value) ? $('#PokeClickerHelperAutoSmallRestore').text($('#PokeClickerHelperAutoSmallRestore').text().replace('OFF', 'ON')) : $('#PokeClickerHelperAutoSmallRestore').text($('#PokeClickerHelperAutoSmallRestore').text().replace('ON', 'OFF'));
JSON.parse(this.value) ? this.classList.replace('btn-danger', 'btn-success') : this.classList.replace('btn-success', 'btn-danger');
JSON.parse(this.value) ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSmallRestore) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoSmallRestore)
PokeClickerHelper.set('AutoSmallRestore', this.value)
})
$('#PokeClickerHelperSmallRestore').on('change', event => {
let SmallRestorePrice = +event.target.value.replace(/[A-Za-z!@#$%^&*()]/g, '').replace(/[,]/g, "");
PokeClickerHelper.set('BuySmallRestorePrice', SmallRestorePrice)
event.target.value = SmallRestorePrice.toLocaleString('en-US');
});
}
PokeClickerHelper.UIContainerID.push("#PokeClickerHelperAutoSellPlate");
PokeClickerHelper.UIContainerID.push("#PokeClickerHelperAutoSellDiamond");
PokeClickerHelper.UIContainerID.push("#PokeClickerHelperAutoSmallRestore");
PokeClickerHelper.UIContainerID.push("#PokeClickerHelperSmallRestore");
PokeClickerHelper.UICustomFuc.push(fuc);
PokeClickerHelper.UIlistener.push(listener);
// 暴露对象方法到全局
const AutoUnderground = {};
PokeClickerHelper.AutoUnderground = AutoUnderground;
AutoUnderground.LoadOver = false; //判断是否加载完成
// 检测功能状态
AutoUnderground.CheckAutoUnderground = () => {
if (JSON.parse(PokeClickerHelper.get('AutoSellPlate', 'false'))) {
$('#PokeClickerHelperAutoSellPlate').text($('#PokeClickerHelperAutoSellPlate').text().replace('OFF', 'ON'))
$('#PokeClickerHelperAutoSellPlate')[0].classList.replace('btn-danger', 'btn-success')
PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellPlate)
}
if (JSON.parse(PokeClickerHelper.get('AutoSellDiamond', 'false'))) {
$('#PokeClickerHelperAutoSellDiamond').text($('#PokeClickerHelperAutoSellDiamond').text().replace('OFF', 'ON'))
$('#PokeClickerHelperAutoSellDiamond')[0].classList.replace('btn-danger', 'btn-success')
PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellDiamond)
}
if (JSON.parse(PokeClickerHelper.get('AutoSmallRestore', 'false'))) {
$('#PokeClickerHelperAutoSmallRestore').text($('#PokeClickerHelperAutoSmallRestore').text().replace('OFF', 'ON'))
$('#PokeClickerHelperAutoSmallRestore')[0].classList.replace('btn-danger', 'btn-success')
PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSmallRestore)
}
$('#PokeClickerHelperSmallRestore')[0].value = PokeClickerHelper.get('BuySmallRestorePrice', '0')
$('#PokeClickerHelperSmallRestore').change()
}
// 自动挖矿
AutoUnderground.AutoDig = () => {
const rewardDigArr = [];
// 遍历所有的矿物
for (let i = 0; i < Mine.rewardGrid.length; i++) {
const row = Mine.rewardGrid[i];
for (let j = 0; j < row.length; j++) {
const reward = row[j];
if (reward && reward.revealed != 1) rewardDigArr.push({ x: i, y: j });
}
}
// 挖掘部分代码
if (rewardDigArr.length > 0) {
let noEnergy = false;
for (let i = 0; i < rewardDigArr.length; i++) {
const rewardDig = rewardDigArr[i];
const reward = Mine.rewardGrid[rewardDig.x][rewardDig.y];
while (reward.revealed != 1) {
if (App.game.underground.energy >= Underground.CHISEL_ENERGY) {
Mine.chisel(rewardDig.x, rewardDig.y);
} else {
noEnergy = true;
break;
}
}
if (noEnergy) break;
}
}
}
// 自动售板
AutoUnderground.AutoSellPlate = () => {
player.mineInventory().forEach(item => {
if (item.valueType === 1 && !item.sellLocked() && item.amount() > 0) Underground.sellMineItem(item.id, item.amount())
})
}
// 自动售宝
AutoUnderground.AutoSellDiamond = () => {
player.mineInventory().forEach(item => {
if (item.valueType === 0 && !item.sellLocked() && item.amount() > 0) Underground.sellMineItem(item.id, item.amount())
})
}
// 自动 买/用 初级体力药剂
AutoUnderground.AutoSmallRestore = () => {
// 购买药剂 Version 0.1.1 新增判断 未开启自动挖掘的功能情况即使开启购买药剂也不会购买
let Buyprice = Math.round(ItemList["SmallRestore"].basePrice * (player.itemMultipliers["SmallRestore"] || 1));
if (JSON.parse(PokeClickerHelper.get('BuySmallRestorePrice', '0')) > Buyprice && JSON.parse(PokeClickerHelper.get('ToggleAutoDig', 'false'))) ItemList["SmallRestore"].buy(1);
// 使用药剂
if (App.game.underground.energy < Underground.CHISEL_ENERGY) { //当前体力<使用的挖矿工具需要的体力时候
if (player.itemList["SmallRestore"]() > 0) {
ItemList["SmallRestore"].use();
} else if (player.itemList["MediumRestore"]() > 0) {
ItemList["MediumRestore"].use();
} else if (player.itemList["LargeRestore"]() > 0) {
ItemList["LargeRestore"].use();
}
}
}